package lumis.portal.presentation.perspective;

import java.io.Serializable;



/**
 * Interface that represents the attributes of the portal modes.
 * @version $Revision: 13214 $ $Date: 2011-07-07 21:46:10 -0300 (Thu, 07 Jul 2011) $
 * @since 6.0.0
 */
public interface IPortalMode extends Serializable
{
	
	/**
	 * Represents the view mode, the only mode in user perspective.
	 * @since 6.0.0
	 */
	public static final int MODE_VIEW = 0;
	
	/**
	 * Represents the administration mode, the only mode in administrator perspective.
	 * @since 6.0.0
	 */
	public static final int MODE_ADMINISTRATION = 1;
	
	/**
	 * Represents the personalization mode, one of the modes in publisher perspective.
	 * @since 6.0.0
	 */
	public static final int MODE_PERSONALIZATION = 2;
	
	/**
	 * Represents the in-context edit mode, one of the modes in publisher perspective.
	 * @since 6.0.1
	 */
	public static final int MODE_IN_CONTEXT_EDIT = 3;
	
	/**
	 * Returns the description of the current PortalMode.
	 * @return the description of the current PortalMode.
	 * @since 6.0.0
	 */
	public String getDescription();
	
	/**
	 * Returns the id of the current PortalMode.
	 * @return the id of the current PortalMode.
	 * @since 6.0.0
	 */
	public int getId();
	
	/**
	 * Returns the name of the current PortalMode.
	 * @return the name of the current PortalMode.
	 * @since 6.0.0
	 */
	public String getName();	
	
	/**
	 * Returns the current perspective.
	 * @return the current perspective.
	 * @since 6.0.0
	 */
	public Perspective getPerspective();
	
}
